#include <bits/stdc++.h>
// 2025/07/20
// tag: 
// Author: Forever
using namespace std;
using int64 = int64_t;
#define int long long
int n, d[31], dp[31][31];
vector<int> f[31][31];

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n;
    for (int i = 1; i <= n; i++)
        dp[0][i] = 1;
    for (int i = 1; i <= n; i++)
        cin >> d[i], dp[1][i] = d[i], f[1][i] = {i};
    for (int len = 2; len <= n; len++)
        for (int llen = 0; llen < len; llen++)
            for (int st = 1; st <= n - len + 1; st++)
                if (dp[llen][st] * dp[len - llen - 1][st + llen + 1] + d[st + llen] > dp[len][st]){
                    dp[len][st] = dp[llen][st] * dp[len - llen - 1][st + llen + 1] + d[st + llen];
                    f[len][st].clear();
                    f[len][st].push_back(st + llen);
                    f[len][st].insert(f[len][st].end(), f[llen][st].begin(), f[llen][st].end());
                    f[len][st].insert(f[len][st].end(), f[len - llen - 1][st + llen + 1].begin(), f[len - llen - 1][st + llen + 1].end());
                }
    cout << dp[n][1] << endl;
    for (auto x : f[n][1])
        cout << x << ' ';
    return 0;
}